import axios from "axios"
import {toast} from '~/composables/util'
import {getToken} from '~/composables/auth'
import store from "~/store"

const service = axios.create({
  baseURL: import.meta.env.VITE_APP_BASE_API,
})

// 添加请求拦截器
service.interceptors.request.use(function (config) {

  // 往header头自动添加token
  const token = getToken()
  if (token) {
    config.headers["token"] = token
  }
  console.log('sign_config', config)
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
service.interceptors.response.use(
  (response) => {
    console.log('sign_response', response)
  // 对响应数据做点什么
  response.request.responseType === "blob" ? response.data : response.data.data;
}, 
  (error) => {
  const msg = error.response.data.msg || "请求失败"

  if (msg === "非法token，请先登录！") {
    store.dispatch("logOut").finally(() => location.reload())
  }

  toast(msg, "error")
  return Promise.reject(error);
})

export default service